﻿
$(document).ready(function () {

    $('.table').comRolagem();
    SetCamposPesquisa($('.ddlTipoPessoa').val());
    SetPesquisarPessoaFisica();
    SetIncluirPessoaFisica();
    SetAlterarPorTipoPessoa();
});

function SetPesquisarPessoaFisica() {
    $('.pesquisar-modal').unbind('click').bind('click', (function () {

        if ($('.campoPesquisaCgcCpf').val().length != TamanhoCpfCnpj.Cpf) {
            AddErro('.campoPesquisaCgcCpf', '* CPF inválido.');
            return;
        }

        $.ajax({
            type: 'POST',
            url: URL_BASE + "Parceiro/ObterPessoaFisicaJSON",
            data: { cpf: RemoverMascaraCpfCnpj($('#CgcCpf').val()), nome: $('#RazaoSocial').val() },
            success: function (data) {
                var partialGrid = $('#RenderPartialActionPlaceholder .table tbody');
                $(partialGrid).empty();
                $(data).each(function () {
                    partialGrid.append(DataPessoaFisicaToGridRow(this));
                });
            }
        });
    })
    );

    SetIncluirPessoaFisica();
}

function SetPesquisarPessoaJuridica() {
    $('.pesquisar-modal').unbind('click').bind('click', (function () {

        if ($('.campoPesquisaCgcCpf').val().length != TamanhoCpfCnpj.Cnpj) {
            AddErro('.campoPesquisaCgcCpf', '* CNPJ inválido.');
            return;
        }

        $.ajax({
            type: 'POST',
            url: URL_BASE + "Parceiro/ObterPessoaJuridicaJSON",
            data: { cnpj: RemoverMascaraCpfCnpj($('#CgcCpf').val()), razaoSocial: $('#RazaoSocial').val() },
            success: function (data) {
                console.log(data);
                var partialGrid = $('.tbodyPessoaJuridica');
                $(partialGrid).empty();
                $(data).each(function () {
                    partialGrid.append(DataPessoaJuridicaToGridRow(this));
                    CnpjFactory();
                    CpfFactory();
                });
            }
        });
    })
    );

    SetIncluirSocioRepresentante();
}

function SetIncluirPessoaFisica() {
    $('.btnIncluir').unbind('click').bind('click', function () {

        var parceiroSelecionado = $(".parceiroId [type='radio']:checked");
        var model = {
            AgendaId: $('#Numero').val(),
            PessoaFisicaId: $(parceiroSelecionado).val(),
            ParceiroPessoaFisica: {
                Cgccpf: $(parceiroSelecionado).parent().next().html().trim(),
                RazaoSocial: $(parceiroSelecionado).parent().next().next().html().trim()
            }
        }

        $.ajax({
            type: 'POST',
            url: URL_BASE + "Inscricao/IncluirInscricaoPessoaFisica",
            data: model,
            success: function (data) {
                if (data.Erro != null) {
                 
                    ExibeMensagem(data.Erro);
                } else {
                location.reload();
                }
            }
        });
    });
}

function SetIncluirSocioRepresentante() {
    $('.btnIncluir').unbind('click').bind('click', function () {

        var pjSelecionado = $(".tbodyPessoaJuridica input[type='checkbox']:checked");

        if (pjSelecionado == null || pjSelecionado.length == 0) {
            ExibeMensagem('Selecione uma Pessoa Jurídica.', 'erro');
            return;
        }

        var checkboxMarcadas = $(".tbodySocioRepresentante input[type='checkbox']:checked");
        if (checkboxMarcadas == null || checkboxMarcadas.length == 0) {
            ExibeMensagem('Selecione um cliente.', 'erro');
            return;
        }

        var model = new Array();
        var agendaId = $('#Numero').val();

        $(checkboxMarcadas).each(function () {
            var socio = {
                PessoaFisicaId: $(this).val(),
                PessoaJuridicaId: $(pjSelecionado).val(),
                AgendaId: agendaId 
            }

            model.push(socio);
        });

        console.log(model);

        $.ajax({
            contentType: 'application/json; charset=utf-8',
            type: 'POST',
            dataType: 'json',
            url: URL_BASE + "Inscricao/IncluirPorPessoaJuridica",
            data: JSON.stringify({'model': model}),
            success: function (data) {
                location.reload();
            }
        });
    });
}

function SetAlterarPorTipoPessoa() {
    $('.ddlTipoPessoa').bind('change', function () {

        var tipoPessoa = $('.ddlTipoPessoa').val();

        var partialToRender = tipoPessoa == TipoPessoaEnum.PessoaJuridica ? 'IncluirPorPessoaJuridica'
            : 'IncluirPorPessoaFisica';

        SetCamposPesquisa(tipoPessoa);

        $.ajax({
            url: URL_BASE + "Inscricao/" + partialToRender,
            success: function (data) {
                $('.partialIncluirTipoPessoa').empty().append(data);

                if (tipoPessoa == TipoPessoaEnum.PessoaJuridica) {
                    SetPesquisarPessoaJuridica();
                } else {
                    SetPesquisarPessoaFisica();
                }

            }
        });
    });
}

function SetCamposPesquisa(tipoPessoa) {
    if (tipoPessoa == TipoPessoaEnum.PessoaJuridica) {
        $('.lblParceiroCgcCpf').text('CNPJ');
        $('.campoPesquisaCgcCpf').removeClass('cpf').addClass('cnpj').attr('maxlength', 20);

        $('.lblParceiroNome').text('Razão Social');

        CnpjFactory();

    } else {
        $('.lblParceiroCgcCpf').text('CPF');
        $('.campoPesquisaCgcCpf').removeClass('cnpj').addClass('cpf').attr('maxlength', 14);

        $('.lblParceiroNome').text('Nome');

        CpfFactory();
    }


}

function DataPessoaFisicaToGridRow(data) {
    return "<tr>"
        + "<td class='w5 parceiroId'> <input type='radio' name='sel' value='" + data.PessoaFisicaId + "'/></td>"
        + "<td class='cgcCpf w20'>" + data.Cpf + "</td>"
        + "<td class='razaoSocial w75'>" + data.Nome + "</td>"
        + '</tr>';
}

function DataPessoaJuridicaToGridRow(data) {

    var rowSocios;
    var i = 0;
    $(data.SocioRepresentanteList).each(function () {
        rowSocios =
            "<td style='display:none'>"
            + "<div class='socios socio_" + i + "'>"
            + "<span class='socioCpf'>" + this.Cpf + "</span>"
            + "<span class='socioNome'>" + this.Nome + "</span>"
            + "<span class='socioPfId'>" + this.PessoaFisicaId + "</span>"
            + "<span class='socioCargo'>" + this.Cargo + "</span>"
            + "</td>"
            + "</div>";
    });


    return "<tr class='roll-Empreendimento linha-empreendimento'>"
    + rowSocios
   + "<td class='w5'> <input class='selecionado' type='checkbox' name='selecionado' onclick='GetSociosFromPJ()' value='" + data.PessoaJuridicaId + "'/></td>"
   + "<td class='nome-cnpj w20 cnpj'>" + data.Cnpj + "</td>"
   + "<td class='idPessoaJ w40'>" + data.RazaoSocial + "</td>"
   + "<td class='idPessoaJ w35'>" + data.NomeFantasia + "</td>"
   + '</tr>';
}

function DataSocioPessoaJuridicaToGridRow(data) {

    return "<tr class='roll-Empreendimento linha-empreendimento'>"
 + "<td class='w5'> <input class='selecionado' type='checkbox' name='selecionado' value='" + data.PessoaFisicaId + "'/></td>"
 + "<td class='idPessoaJ w20'>" + data.Nome + "</td>"
 + "<td class='nome-cnpj w55 cpf'>" + data.Cpf + "</td>"
 + "<td class='w20'>" + data.Cargo + "</td>"
 + '</tr>';
}

function GetSociosFromPJ() {
    var tableSocios = $('.tbodySocioRepresentante');
    $(tableSocios).empty();
    var sociosDiv = $(".tbodyPessoaJuridica input[type='checkbox']:checked").parent().parent().find('.socios');
    var socios = new Array();

    $(sociosDiv).each(function () {
        var socio = {
            Cpf: $(this).find('.socioCpf').text().trim(),
            Nome: $(this).find('.socioNome').text().trim(),
            PessoaFisicaId: $(this).find('.socioPfId').text().trim(),
            Cargo: $(this).find('.socioCargo').text().trim()
        }

        socios.push(socio);
    });

    $(socios).each(function () {
        tableSocios.append(DataSocioPessoaJuridicaToGridRow(this));
    })

    CpfFactory();
}
